-- 1. 先拿到 zig 的绝对路径，后面要喂给 nvcc
local zig = "$(env ZIG)"
if not zig or zig == "" then
    -- 没有环境变量就自动在 PATH 里找
    zig = "$(program zig)"
end


-- 自定义一个“zig-cuda”工具链，继承自官方 cuda 工具链
toolchain("zig-cuda", function()
    set_kind("standalone")
    set_description("CUDA 11.8 with zig host compiler")

    -------------------------------------------------
    -- 1) 指定编译器 / 汇编器 / 归档器
    -------------------------------------------------
    -- 把 nvcc 需要的 host 编译器换成 zig cc / zig c++
    set_toolset("cc", zig .. " cc")
    set_toolset("cxx", zig .. " c++")
    set_toolset("ld", zig .. " c++") -- 链接也用 zig
    set_toolset("sh", zig .. " c++") -- 动态库链接
    set_toolset("ar", zig .. " ar")
    set_toolset("ranlib", zig .. " ranlib")
    --set_toolset("as", gcc_root .. "/bin/gcc")            -- assembler

    -- 其余全部继承 cuda 工具链的默认设置
    on_load(function(toolchain)
        import("toolchain.cuda").load(toolchain)
    end)
end)
